#include <stdint.h>
#include <curl/curl.h>
#include <cjson/cJSON.h>
#include <stdio.h>
//回调函数，打印一下服务器相应的数据
size_t writeCallback(void *contents, size_t size, size_t nmemb, void *userp)
{
    size_t realsize = size * nmemb;
    // 这里可以处理获取到的数据，比如存储到文件或者其他操作
    char *result = (char *)contents;
    //先拿到整个json字符串
    cJSON *root=cJSON_Parse(result);
    //判断一下是否非空
    if (root!=NULL)
    {
        //分别解析哪个字段的数据
        cJSON *successRoot = cJSON_GetObjectItemCaseSensitive(root,"success");
        cJSON *codeRoot = cJSON_GetObjectItemCaseSensitive(root,"code");
        cJSON *messageRoot = cJSON_GetObjectItemCaseSensitive(root,"message");
        //打印一下取出的数据,valuestring是要输出的格式
        printf("success=%s,code=%d\n",successRoot->valuestring,codeRoot->valueint);
    }
    
    return realsize;
}

int main(int argc, char const *argv[])
{
    // 先初始化
    CURL *curl = curl_easy_init();
    // 设置请求地址
    curl_easy_setopt(curl, CURLOPT_URL, "http://47.109.65.208/config.json");
    // 设置回电函数
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeCallback);
    // 发送一个请求,code是响应码，200，404这种
    CURLcode code = curl_easy_perform(curl);
    // 判断是否发送成功
    if (code != CURLE_OK)
    {
        fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(code));
    }
    //如果没问题就进行清理
    curl_easy_cleanup(curl);
    return 0;
}
